package com.nutricia.common.dal.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.nutricia.core.model.domain.ExternalPeopleDO;
import com.nutricia.core.model.domain.ExternalPeopleRelaDO;
import com.nutricia.core.model.domain.InsidePeopleDO;
import com.nutricia.core.model.domain.InsidePeopleRelaDO;
import com.nutricia.core.model.domain.MeetingDO;
import com.nutricia.core.model.domain.OptionDO;

@Mapper
public interface MeetingSignUpMapper {
	/**
	 * 根据会议id查询会议具体信息
	* @param mId
	* @return 具体会议信息
	* @author wangzl
	* @date 2018年3月15日
	 */
	MeetingDO queryMeetingByMid(String mId);
	
	/**
	 * 通过会议ID查询所有参会内部人员信息
	* @param mId 会议ID
	* @return 所有参会内部人员信息集合
	* @author wangzl
	* @date 2018年3月15日
	 */
	List<InsidePeopleDO> queryMeetingIpeopleByMid(String mId);
	
	/**
	 * 通过会议ID查询所有参会外部人员信息
	* @param mId 会议ID
	* @return 所有参会外部人员信息集合
	* @author wangzl
	* @date 2018年3月15日
	 */
	List<ExternalPeopleDO> queryMeetingEpeopleByMid(String mId);
	
	/**
	 * 新增会议内部参会人员
	* @param insidePeopleDO 内部参会人员信息
	* @return 是否成功标识
	* @author wangzl
	* @date 2018年3月15日
	 */
	int addInsidePeople(InsidePeopleDO insidePeopleDO);
	
	/**
	 * 通过会议ID、人员ID获取主键ID
	* @param mId 会议ID
	* @param personnelId 证件号
	* @return 主键ID
	* @author wangzl
	* @date 2018年3月15日
	 */
	int getIpeoplePkId(@Param("mId") String mId,@Param("caacId") String caacId);
	
	/**
	 * 新增会议内部参会人员选项
	* @param insidePeopleRelaDO 内部参会人员选项DO
	* @return 是否新增成功标识
	* @author wangzl
	* @date 2018年3月15日
	 */
	int addInsideOption(InsidePeopleRelaDO insidePeopleRelaDO);
	
	/**
	 * 通过会议ID、参会人证件号查询此会议此内部参会人是否重复参会
	* @param mId 会议ID
	* @param caacId 证件号
	* @return 数据记录数
	* @author wangzl
	* @date 2018年3月15日
	 */
	int checkMeetingInsidePeople(@Param("mId") int mId,@Param("caacId") String caacId);
	
	/**
	 * 通过会议ID查询会议所有选项
	* @param mId 会议ID
	* @return 所有选项集合
	* @author wangzl
	* @date 2018年3月15日
	 */
	List<OptionDO> queryOptionInsideByMid(String mId);
	
	/**
	 * 通过会议ID查询会议联系人信息
	* @param mId 会议ID
	* @return 会议对象
	* @author wangzl
	* @date 2018年3月15日
	 */
	MeetingDO queryContactsByMid(String mId);
	
	/**
	 * 新增会议外部参会人员
	* @param externalPeopleDO 参会人员信息对象
	* @return 是否新增成功标识
	* @author wangzl
	* @date 2018年3月15日
	 */
	int addExternalPeople(ExternalPeopleDO externalPeopleDO);
	
	/**
	 * 通过会议ID和证件号ID获取主键ID
	* @param mId 会议ID
	* @param caacId 证件号ID
	* @return 主键ID
	* @author wangzl
	* @date 2018年3月15日
	 */
	int getEpeoplePkId(@Param("mId") String mId,@Param("caacId") String caacId);
	
	/**
	 * 新增会议外部参会人员选项
	* @param externalPeopleRelaDO 外部参会人员选项对象
	* @return 是否成功标识
	* @author wangzl
	* @date 2018年3月15日
	 */
	int addExternalOption(ExternalPeopleRelaDO externalPeopleRelaDO);
	
	/**
	 * 通过会议ID、参会人证件号查询此会议此外部参会人是否重复参会
	* @param mId 会议ID
	* @param caacId 证件号
	* @return 数据记录数
	* @author wangzl
	* @date 2018年3月15日
	 */
	int checkMeetingExternalPeople(@Param("mId") int mId,@Param("caacId") String caacId);
}
